Skip to content

refactor(setting): 설정 전용 저장소와 좁은 주입 계약 분리 (#1429) - #2123

Merged
OnlyReadOneBook merged 5 commits into
developfrom
refactor/1429-setting-repositories
Sep 27, 2026
Merged

OnlyReadOneBook merged 5 commits into
developfrom
refactor/1429-setting-repositories

Conversation

@OnlyReadOneBook

@OnlyReadOneBook OnlyReadOneBook commented Sep 20, 2026 •

Copy link
Copy Markdown
Collaborator

먼저 볼 파일:

  • feature/setting/domain/src/main/java/com/afternote/feature/setting/domain/SettingAccountRepository.kt
  • feature/setting/domain/src/main/java/com/afternote/feature/setting/domain/SettingNotificationRepository.kt
  • feature/setting/data/src/main/kotlin/com/afternote/feature/setting/data/SettingAccountRepositoryImpl.kt
  • feature/setting/presentation/src/main/kotlin/com/afternote/feature/setting/presentation/home/SettingViewModel.kt

설정에서만 호출하는 계정·알림 API 8개가 공통 UserRepository에 남아 있어, 프로필이나 수신자를 사용하는 코드도 이 계약에 의존했습니다. 계정·알림 계약과 구현·Hilt 바인딩을 설정 모듈로 옮기고, 설정 ViewModel이 실제 사용하는 좁은 저장소를 주입받게 합니다.

수신자·프로필 호출 기록도 각 테스트 fixture로 옮깁니다. 탈퇴 성공 뒤 세션 정리, 정리 실패의 진단, 푸시 설정 오류 분류와 API 요청·응답을 보존합니다. 보류된 #1967에서 저장소 책임 분리에 해당하는 범위를 현재 develop 구조에 맞춰 추출했습니다. 원본에서 확인된 계약·매퍼·fixture의 Viewed 상태를 대조해 옮겼으며, 테스트와 순수 이관 파일을 포함한 40/46개가 Viewed입니다. 새 주입·빌드 경계 6개는 검토를 남겼습니다.

검증:

  • 관련 단위 테스트 934개와 Konsist 54개 통과.
  • 변경 모듈과 앱의 ktlint, 앱 main/unit/androidTest 컴파일, 계측 APK 생성 통과.
  • 설정 screenshot 소스 컴파일 통과. UI 변경이 없어 골든 갱신이나 에뮬레이터 실행은 수행하지 않았습니다.

계측 테스트의 계정 fixture는 생성 시 받은 프로필 이메일을 사용합니다. 프로덕션 Hilt 모듈은 internal을 유지하고, 테스트 대체 바인딩은 Java 계측 소스에 둡니다.

Closes #1429
Closes #1739

CI Test Plan

{
  "androidTest": {
    "mode": "full",
    "reason": "앱의 설정 data 의존성과 Hilt 테스트 대체 바인딩을 변경하므로 전체 계측 테스트로 앱 주입 그래프와 기존 화면 흐름을 검증합니다.",
    "tests": []
  }
}

@github-actions github-actions Bot added android-test PR head에서 Android Managed Device 계측 테스트 실행 sibling-conflict 열린 형제 PR 과 같은 파일에서 충돌 — 나중에 머지되는 쪽이 base 를 병합해야 한다. 해소되면 자동으로 떨어진다 labels Sep 20, 2026
@github-actions

github-actions Bot commented Sep 20, 2026 •

Copy link
Copy Markdown
Contributor

열린 PR 중 이 PR 과 같은 파일을 서로 다르게 고친 것이 있다. 어느 쪽이 먼저 머지되든 나중 쪽은 base 를 병합해야 통과한다 (#1750).

머지 자체는 GitHub 이 막는다 — 한쪽이 들어가면 다른 쪽은 CONFLICTING 이 되어 merge queue 에 못 들어간다.
이 라벨은 그 전에 순서를 정하라는 신호다. 먼저 갈 쪽을 정하고, 나중 쪽은 그 머지 뒤에 base 를 병합한다.
상대 PR 에도 같은 안내가 달린다.

이 코멘트는 리컨사일러가 매 실행 현재 상태로 고쳐 쓴다. 해소되면 sibling-conflict 라벨은 자동으로 떨어진다.

@OnlyReadOneBook
OnlyReadOneBook added this pull request to stack #2125 September 20, 2026 13:07
@OnlyReadOneBook
OnlyReadOneBook added this pull request to the merge queue Sep 26, 2026
@github-merge-queue
github-merge-queue Bot removed this pull request from the merge queue due to a conflict with the base branch Sep 26, 2026
@github-actions

Copy link
Copy Markdown
Contributor

merge queue 방출 — 재투입했다

사유 MERGE_CONFLICT · head 37670dc · merge group 실패 job 없음 → 조용한 방출로 보고 한 번 재투입했다.
같은 head 에서 또 방출되면 재투입하지 않고 여기에 남긴다.

@github-actions github-actions Bot added the conflict base 와 충돌 — CI 가 트리거되지 않는다. base 를 병합하면 자동으로 떨어진다 label Sep 26, 2026
@github-actions

Copy link
Copy Markdown
Contributor

이 PR 은 develop 와 충돌 상태이고, 그래서 CI 가 돌지 않는다.

pull_request 워크플로는 base 와 head 를 합친 가상 머지 커밋(refs/pull/<N>/merge)에서
실행되는데, 충돌이면 GitHub 이 그 ref 를 만들지 못해 워크플로가 트리거조차 되지 않는다.
체크가 실패하는 것이 아니라 아예 생성되지 않으므로, 새 커밋을 올려도 no checks reported
인 채 최신 커밋이 한 번도 검증되지 않은 상태로 남는다 (#1028).

develop 를 병합해 충돌을 풀면 검증이 다시 돈다. 해소되면 이 라벨은 자동으로 떨어진다.

…ing-repositories

# Conflicts:
#	feature/afternote/presentation/src/test/kotlin/com/afternote/feature/afternote/presentation/AfternoteAuthorTestFixtures.kt
#	feature/setting/presentation/src/test/kotlin/com/afternote/feature/setting/presentation/SettingFlowTest.kt
@github-actions github-actions Bot removed the conflict base 와 충돌 — CI 가 트리거되지 않는다. base 를 병합하면 자동으로 떨어진다 label Sep 26, 2026

@OnlyReadOneBook OnlyReadOneBook left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

CI 전량 초록 확인. 검색 status: 색인 갱신용 코멘트.

@OnlyReadOneBook
OnlyReadOneBook added this pull request to the merge queue Sep 27, 2026
Merged via the queue into develop with commit a7634f4 Sep 27, 2026
25 checks passed
@OnlyReadOneBook
OnlyReadOneBook deleted the refactor/1429-setting-repositories branch September 27, 2026 05:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

android-test PR head에서 Android Managed Device 계측 테스트 실행 sibling-conflict 열린 형제 PR 과 같은 파일에서 충돌 — 나중에 머지되는 쪽이 base 를 병합해야 한다. 해소되면 자동으로 떨어진다

Projects

None yet

2 participants